package db;

/**
 * Beinhaltet alle Datenbankabfragen für
 * die Übungsauswahl im aktuellen
 * Trainingsplan
 *
 * @author felix
 */
public class baskets {
    /**
    * Legt ein neues Element für einen Trainingsplan an
    * @author felix
    * @param exercise  ID der Übung
    * @param duration Dauer der Übung
    * @param session SessionID des Benützers
    */
   public static void createBasket (String exercise, String duration, String session) {
        String sql = "INSERT INTO baskets ";
        sql += "(`basketSession`,`exercise`,`duration`) VALUES (?,?,?)";
        String[] param = {session, exercise, duration};
        db.MySQLConnection.getInstance().executeStatement(sql, param);
   }

    /**
    * Liefert alle Einträge für einen Trainingsplan zurück
    * @author felix
    * @param exercise ID der Übung
    * @param session SessionID des Benutzers
    * @return Stringarray mit Übungen und Dauer
    */
   public static String[][] getAllBasketsByExerciseIdAndSessionId(String exercise, String session){
        String sql = "SELECT basketSession, exercise, duration FROM baskets WHERE exercise = " + exercise + " AND basketSession = '" + session + "'";
        String baskets[][] = db.MySQLConnection.getInstance().getGenericQuery(sql);

        return baskets;
   }

    /**
    * Alle Inhalte eines Trainingsplans anhand der Session
    * @author felix
    * @param session SessionID des Benutzers
    * @return Stringarray mit allen Übungen und Dauer
    */
   public static String[][] getAllBasketsBySessionIdOrdered(String session){
        String sql = "SELECT basketSession, exercise, duration FROM baskets WHERE basketSession = '" + session + "' GROUP BY exercise ORDER BY added ASC";
       
        String baskets[][] = db.MySQLConnection.getInstance().getGenericQuery(sql);

        return baskets;
   }

    /**
    * Einträge anhand der Session löschen
    * @author felix
    * @param exercise ID der Übung
    * @param session SessionID des Benutzers
    */
   public static void deleteBasket (String exercise, String session) {
        String sql = "DELETE FROM baskets WHERE exercise = ? AND basketSession = ?";
        String[] param = {exercise, session};
        db.MySQLConnection.getInstance().executeStatement(sql, param);
   }

    /**
    * Alle Einträge für eine Session löschen
    * @author felix
    * @param session SessionID des benutzers
    */
   public static void clearBasketBySessionId (String session) {
        String sql = "DELETE FROM baskets WHERE basketSession = ?";

        db.MySQLConnection.getInstance().executeStatement(sql, session);
   }

    /**
    * Gesamtdauer für die ausgewählten Übungen berechnen
    * @author felix
    * @param session SessionID des Benutzers
    * @return Dauer als String
    */
   public static String getTotalDuration (String session) {
        String sql = "SELECT SUM(duration) FROM baskets WHERE `basketSession` = '" + session + "'";

        String durations[][] = db.MySQLConnection.getInstance().getSingleResultRow(sql);

        String duration = durations[0][0];

        return duration;
   }

}

